#ifndef EVENT_H
#define EVENT_H

#include "../global.h"

class Event : protected boost::noncopyable
{
public:
    enum Type
    {
        ET_INVALID = 0,

        ET_TIMER = 1,

        ET_NET_READ = 2,
        ET_NET_WRITE = 3,
        ET_NET_READCOMPLETE = 4,
        ET_NET_WRITECOMPLETE = 5,
        ET_NET_CONNECT = 6,
        ET_NET_DISCONNECT = 7,
        ET_NET_SVRSTOP = 8
    };

public:
    Event(Type type);
    virtual ~Event();

    Type type() const;

    static const char *typeName(Type type);

protected:
    Type m_type;
};

#endif // EVENT_H
